home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Diamond Collection
/
The Diamond Collection (Software Vault)(Digital Impact).ISO
/
cdr47
/
sptdemo.zip
/
ESTADIS.PRG
< prev
next >
Wrap
Text File
|
1995-02-28
|
5KB
|
145 lines
// ----------------------------------------------------------------------------
// (c) 1,994 Juan Miguel Sosso Prieto - Todos los derechos reservados
// Autor...: Juan Miguel Sosso
// Proyecto: Contabilidad Personal
// Módulo..: Estadísticas
// Fecha...: Mon 23-05-94
// Hora....: 15:48:14
#include "box.ch"
#include "inkey.ch"
#include "sptools.ch"
// ----------------------------------------------------------------------------
// Calcula la media de ingresos y gastos por Mes
proc MedPorMes()
local cTexto := "Mes Ingreso Gasto Ahorro" + LINEA + ;
"============ ========= ========= =========" + LINEA
local nIng := 0
local nGas := 0
local nSumIn := 0
local nSumGa := 0
local nMeses := 0
local nMes
local cMes
local nAno := Year( Date() )
if lInputBox( "Año a consultar:", @ nAno, "9999" )
if nAno < 1900
nAno += 1900
endif
Apunte->( DbSetOrder( 1 ) ) // dFECHA
Apunte->( DbSeek( CToD( "01-01-" + cStr( nAno ) ) ) )
nMes = Month( Apunte->dFECHA )
cMes = cMonth( Apunte->dFECHA )
while ! Apunte->( EoF() ) .and. Year( Apunte->dFECHA ) == nAno
if Month( Apunte->dFECHA ) == nMes
nIng += Apunte->nINGRESO
nGas += Apunte->nGASTO
else
cTexto += PadR( cMes + ":", 13 ) + Transform( nIng, "9,999,999" ) + ;
Transform( nGas, " 9,999,999" ) + ;
Transform( nIng - nGas, " 9,999,999" ) + LINEA
nSumIn += nIng
nSumGa += nGas
nMeses++
nMes = Month( Apunte->dFECHA )
cMes = cMonth( Apunte->dFECHA )
nIng = Apunte->nINGRESO
nGas = Apunte->nGASTO
endif
Apunte->( DbSkip() )
enddo
nSumIn += nIng
nSumGa += nGas
nMeses++
cTexto += PadR( cMes + ":", 13 ) + Transform( nIng, "9,999,999" ) + ;
Transform( nGas, " 9,999,999" ) + ;
Transform( nIng - nGas, " 9,999,999" ) + LINEA
cTexto += "============ ========= ========= =========" + LINEA
cTexto += PadR( "Total:", 13 ) + Transform( nSumIn, "9,999,999" ) + ;
Transform( nSumGa, " 9,999,999" ) + ;
Transform( nSumIn - nSumGa, " 9,999,999" ) + LINEA
cTexto += PadR( "Media:", 13 ) + Transform( nSumIn / nMeses, "9,999,999" ) + ;
Transform( nSumGa / nMeses, " 9,999,999" ) + ;
Transform( ( nSumIn - nSumGa ) / nMeses, " 9,999,999" ) + LINEA
cEditor( cTexto, .f., 19, 46, .t., "Media de ingr./gastos por mes" )
endif
return
// ----------------------------------------------------------------------------
proc Estadistica()
local cTexto := ""
local nMes
local cMes
local nIngreso := 0
local nGasto := 0
local nGrup := 0
local nAnio := Year( Date() )
local nTotalIngreso := 0
local nTotalGasto := 0
BuscaGrupo( .t. )
if LastKey() != K_ESC .and. lInputBox( "Año a consultar:", @ nAnio, "9999" )
cTexto += AllTrim( Grupo->cDESC ) + ":" + LINEA + LINEA
Apunte->( DbSetOrder( 2 ) )
Apunte->( DbSeek( Str( Grupo->nGRUPO ) + Str( nAnio, 4 ) + "0101" ) )
//nMsgBox( DToS( Apunte->dFECHA ) )
nMes = Month( Apunte->dFECHA )
cMes = cMonth( Apunte->dFECHA )
while Apunte->nGRUPO == Grupo->nGRUPO .and. ! Apunte->( EoF() ) .and. ;
Year( Apunte->dFECHA ) == nAnio
if nMes == Month( Apunte->dFECHA )
nIngreso += Apunte->nINGRESO
nGasto += Apunte->nGASTO
nTotalIngreso += Apunte->nINGRESO
nTotalGasto += Apunte->nGASTO
else
cTexto += PadR( cMes, 10 ) + " Ingresos: " + ;
Transform( nIngreso, "999,999" ) + " Gastos: " + ;
Transform( nGasto, "999,999" ) + LINEA
nMes = Month( Apunte->dFECHA )
cMes = cMonth( Apunte->dFECHA )
nIngreso = Apunte->nINGRESO
nGasto = Apunte->nGASTO
nTotalIngreso += nIngreso
nTotalGasto += nGasto
endif
Apunte->( DbSkip() )
enddo
if nMes > 0
cTexto += PadR( cMes, 10 ) + " Ingresos: " + ;
Transform( nIngreso, "999,999" ) + " Gastos: " + ;
Transform( nGasto, "999,999" ) + LINEA + LINEA
cTexto += " Total ingreso: " + Transform( nTotalIngreso, "9,999,999" ) + ;
" Gasto:" + Transform( nTotalGasto, "9,999,999" ) + LINEA
endif
cEditor( cTexto, .f., 18, 50, .t., "Estadística de ingr./gastos por grupo" )
endif
return
// ----------------------------------------------------------------------------